package 力扣._128_最长连续序列;

import java.util.HashSet;

public class Solution3 {
    public int longestConsecutive(int[] nums) {
        //先排序 不行，因为要求O(n)，那就散列表
        HashSet<Integer> num_set = new HashSet<>();
        for (int num : nums)
            num_set.add(num);
        int max = 0;

        for (int num : nums) {  //这里共遍历n次
            //找到该连续序列起始位置
            if (!num_set.contains(num - 1)) {
                int now = 1;
                int current_num = num;
                //在for循环结束后，这里的while的内容也最多n次，
                while (num_set.contains(++current_num))
                    now++;
                max = Math.max(max, now);
            }
        }
        return max;
    }

    public static void main(String[] args) {

    }
}
